Expand description
§LibYML
LibYML
is a Rust library for parsing and emitting YAML data in a safe and efficient manner. The library is designed to be easy to use and provides a comprehensive set of tools for working with YAML data.
§Seamless YAML Serialization for Rust.
§Features
- Serialization and Deserialization: LibYML provides easy-to-use APIs for serializing Rust structs and enums into YAML format and deserializing YAML data into Rust types.
- Custom Struct and Enum Support: The library allows you to work with custom structs and enums, enabling seamless serialization and deserialization of your own data types.
- Error Handling: LibYML provides comprehensive error handling mechanisms, including detailed error messages and the ability to handle and recover from parsing and emission errors.
- Streaming Support: The library supports streaming of YAML data, allowing you to efficiently process large YAML documents incrementally.
- Alias and Anchor Support: LibYML handles YAML aliases and anchors, enabling you to work with complex YAML structures that involve references and duplicated data.
- Tag Handling: The library provides support for custom tags, allowing you to serialize and deserialize YAML data with specific type information.
- Configurable Emitter: LibYML allows you to customize the emitter settings, such as indentation, line width, and scalar style, to generate YAML output according to your preferences.
- Extensive Documentation: The library comes with detailed documentation and examples, making it easy to get started and understand how to use its various features effectively.
- Safety and Efficiency: LibYML is designed with safety and efficiency in mind. It minimizes the use of unsafe code and provides an interface that helps prevent common pitfalls and errors.
§Rust Version Compatibility
This library is compatible with Rust 1.60 and above.
Re-exports§
pub use crate::api::yaml_alias_event_initialize;
pub use crate::api::yaml_document_add_mapping;
pub use crate::api::yaml_document_add_scalar;
pub use crate::api::yaml_document_add_sequence;
pub use crate::api::yaml_document_append_mapping_pair;
pub use crate::api::yaml_document_append_sequence_item;
pub use crate::api::yaml_document_delete;
pub use crate::api::yaml_document_end_event_initialize;
pub use crate::api::yaml_document_get_node;
pub use crate::api::yaml_document_get_root_node;
pub use crate::api::yaml_document_initialize;
pub use crate::api::yaml_document_start_event_initialize;
pub use crate::api::yaml_emitter_delete;
pub use crate::api::yaml_emitter_initialize;
pub use crate::api::yaml_emitter_set_break;
pub use crate::api::yaml_emitter_set_canonical;
pub use crate::api::yaml_emitter_set_encoding;
pub use crate::api::yaml_emitter_set_indent;
pub use crate::api::yaml_emitter_set_output;
pub use crate::api::yaml_emitter_set_output_string;
pub use crate::api::yaml_emitter_set_unicode;
pub use crate::api::yaml_emitter_set_width;
pub use crate::api::yaml_event_delete;
pub use crate::api::yaml_mapping_end_event_initialize;
pub use crate::api::yaml_mapping_start_event_initialize;
pub use crate::api::yaml_parser_delete;
pub use crate::api::yaml_parser_initialize;
pub use crate::api::yaml_parser_set_encoding;
pub use crate::api::yaml_parser_set_input;
pub use crate::api::yaml_parser_set_input_string;
pub use crate::api::yaml_scalar_event_initialize;
pub use crate::api::yaml_sequence_end_event_initialize;
pub use crate::api::yaml_sequence_start_event_initialize;
pub use crate::api::yaml_stream_end_event_initialize;
pub use crate::api::yaml_stream_start_event_initialize;
pub use crate::api::yaml_token_delete;
pub use crate::yaml::YamlAliasDataT;
pub use crate::yaml::YamlBreakT;
pub use crate::yaml::YamlDocumentT;
pub use crate::yaml::YamlEmitterStateT;
pub use crate::yaml::YamlEmitterT;
pub use crate::yaml::YamlEncodingT;
pub use crate::yaml::YamlErrorTypeT;
pub use crate::yaml::YamlEventT;
pub use crate::yaml::YamlEventTypeT;
pub use crate::yaml::YamlMappingStyleT;
pub use crate::yaml::YamlMarkT;
pub use crate::yaml::YamlNodeItemT;
pub use crate::yaml::YamlNodePairT;
pub use crate::yaml::YamlNodeT;
pub use crate::yaml::YamlNodeTypeT;
pub use crate::yaml::YamlParserStateT;
pub use crate::yaml::YamlParserT;
pub use crate::yaml::YamlReadHandlerT;
pub use crate::yaml::YamlScalarStyleT;
pub use crate::yaml::YamlSequenceStyleT;
pub use crate::yaml::YamlSimpleKeyT;
pub use crate::yaml::YamlStackT;
pub use crate::yaml::YamlTagDirectiveT;
pub use crate::yaml::YamlTokenT;
pub use crate::yaml::YamlTokenTypeT;
pub use crate::yaml::YamlVersionDirectiveT;
pub use crate::yaml::YamlWriteHandlerT;
Modules§
Functions§
- Finish a YAML stream.
- Emit a YAML document.
- Emit an event.
- Flushes the buffer of the emitter and writes the content to the output stream.
- Start a YAML stream.
- Parse the input stream and produce the next YAML document.
- Parse the input stream and produce the next parsing event.
- Scan the input stream and produce the next token.